import sys
import os
# 添加项目根目录到系统路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from common.train_dict import classify_problem, get_dict_name

def process_person_dict(person_data, is_reporter=True):
    """
    处理反映人或被反映人的字典映射
    :param person_data: 人员数据字典
    :param is_reporter: 是否为反映人（True为反映人，False为被反映人）
    :return: 处理后的数据字典
    """
    try:
        # 处理职级
        if "zj" in person_data and person_data["zj"]:
            zj_value = classify_problem("file/反映人被反映人字典.xlsx", person_data["zj"], "职级")
            if zj_value:
                person_data["zj"] = zj_value

        # 处理干部管理权限
        if "gbglqx" in person_data and person_data["gbglqx"]:
            gbglqx_value = classify_problem("file/反映人被反映人字典.xlsx", person_data["gbglqx"], "干部管理权限")
            if gbglqx_value:
                person_data["gbglqx"] = gbglqx_value

        # 处理政治面貌
        if "zzmm" in person_data and person_data["zzmm"]:
            zzmm_value = classify_problem("file/反映人被反映人字典.xlsx", person_data["zzmm"], "政治面貌")
            if zzmm_value:
                person_data["zzmm"] = zzmm_value

        return person_data
    except Exception as e:
        print(f"处理人员字典时发生错误: {str(e)}")
        return person_data

def process_persons_list(persons_list, is_reporter=True):
    """
    处理反映人或被反映人列表
    :param persons_list: 人员列表
    :param is_reporter: 是否为反映人（True为反映人，False为被反映人）
    :return: 处理后的列表
    """
    if not persons_list:
        return persons_list
    
    return [process_person_dict(person, is_reporter) for person in persons_list] 